import { defineStore } from 'pinia'

export const useCounterStore = defineStore('counter', {
  state: () => ({
    cartList: [] // 购物车列表
  }),
  getters: {
    // 总数量：
    totalCount(state) {
      let res = 0
      state.cartList.forEach(item => {
        res += item.count
      })
      return res
    },
    // 总价格：
    totalPrice(state) {
      let res = 0
      state.cartList.forEach(item => {
        if (item.checked) {
          res += item.count * item.price
        }
      })
      return res
    }
  },
  actions: {
    // 将商品加入到购物车
    addItem(payload) {
      // 判断商品是否在购物车中：在就conut+1,不在就push进去
      const index = this.cartList.findIndex(item => item.id == payload.id)
      if (index > -1) {
        this.cartList[index].count++
      } else {
        this.cartList.push({
          ...payload,
          count: 1, // 数量
          checked: false // 是否选中
        })
      }
    },
    // 删除购物车商品
    deleteItem(id) {
      this.cartList = this.cartList.filter(item => item.id != id)
    }
  },
})
